package com.mytest.utiltools;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MyBatisUtil {
	// GC不回收 static的变量
	// 设置数据库连接工程类对象静态的
	private static SqlSessionFactory sqlSessionFactory = null;

	private static SqlSessionFactory getSqlSessionFactory() {
		if (null == sqlSessionFactory) {
			// 获得环境配置文件 mybatis的配置
			InputStream config = MyBatisUtil.class.getClassLoader().getResourceAsStream("mybatis-config.xml");
			// 通过配置文件创建sql会话工厂
			sqlSessionFactory = new SqlSessionFactoryBuilder().build(config);
		}
		return sqlSessionFactory;
	}
	
	//获得会话 自动提交方式
	public static SqlSession getSqlSession() {
		return getSqlSessionFactory().openSession(true);
	}
	
    /**
     * 获得得sql会话
     * @param isAutoCommit 是否自动提交，如果为false则需要sqlSession.commit();rollback();
     * @return sql会话
     */
	public static SqlSession getSqlSession(boolean isAutoCommint) {
		return getSqlSessionFactory().openSession(isAutoCommint);
	}
	
}
